import { reqRolePag, reqRoleMenu, reqSaveRoleMenu, reqUpdateRole,
    reqInsertRole, reqUpdateRoleStatus, reqUserRoleAndAll } from "@/api"

// state：仓库存储数据的地方
const state = {
    // 权限列表
    roleList: [],
    // 默认选中的权限
    checkMenuList: []
}
// mutations：修改state的唯一手段，因此第一个参数必须是state，第二个参数为将要修改的数据
const mutations = {
    setRoleList(state, res) {
        state.roleList = res
    },
    setCheckMenu(state, res) {
        state.checkMenuList = res.map(obj => { return obj.id })
    }

}
// action：书写业务逻辑（method方法）
const actions = {
    // 获取权限分页
    async getRolePag({ commit }, data) {
        let res = await reqRolePag(data)
        if (res.success) commit("setRoleList", res.data.roleList)
        return res
    },
    // 请求角色的后台菜单
    async getRoleMenu({ commit }, data) {
        let res = await reqRoleMenu(data)
        if (res.success) commit("setCheckMenu", res.data)
        return res
    },
    // 保存角色分配菜单
    async saveRoleMenu({ commit }, data) {
        return await reqSaveRoleMenu(data)
    },
    // 更新角色信息
    async updateRole({ commit }, data){
        return await reqUpdateRole(data)
    },
    // 新增角色
    async insertRole({ commit }, data){
        return await reqInsertRole(data)
    },
    // 批量更新状态
    async updateRoleStatus({ commit }, data){
        return await reqUpdateRoleStatus(data)
    },
    // 获取用户角色和所有角色
    async getUserRoleAndAll({ commit }, data){
        return await reqUserRoleAndAll(data)
    },


}
// getters：计算属性
const getters = {

}

export default {
    state,
    mutations,
    actions,
    getters
}